/**
 * Project litesql++
 */


#ifndef _CONTENTVALUES_H
#define _CONTENTVALUES_H

#include <string>
#include <map>

using std::string;
using std::map;

class ContentValues {
public:

    ContentValues();

    ~ContentValues();
    
    /**
     * @param key
     * @param value
     */
    void PutBool(const string& key, const bool& value);
    
    /**
     * @param key
     * @param value
     */
    void PutInt32(const string& key, const int32_t& value);
    
    /**
     * @param key
     * @param value
     */
    void PutInt64(const string& key, const int64_t& value);
    
    /**
     * @param key
     * @param value
     */
    void PutText(const string& key, const string& value);
    
    /**
     * @param key
     */
    void PutNULL(const string& key);
    
    void ClearValues();
    
    const int ValuesCount();
    
    const string ValuesAsSQLInsertString() const;
    
    const string ValuesAsSQLUpdateString() const;
private: 
    map< string, string> values_;
};

#endif //_CONTENTVALUES_H
